package com.atguigu;

import redis.clients.jedis.Jedis;

import java.io.IOException;

/**
 *  1 产生超卖问题
 */
public class SecKill1 {

	//秒杀过程
	public static String doSecKill(String uid,String prodid) throws IOException {
		//1 uid和prodid非空判断
		if(uid == null || prodid == null) {
			return "用户没有登录或者请选择要秒杀的商品";
		}

		//2 连接redis
		Jedis jedis = new Jedis("192.168.149.149",6379);

		//3 拼接key
		// 3.1 库存key
		String kcKey = "sk:"+prodid+":kc";
		// 3.2 秒杀成功用户key
		String userKey = "sk:"+prodid+":user";

		//4.完成秒杀
		String result="";
		//4.1 获取库存
		String kc = jedis.get(kcKey);
		if(kc == null) {//4.2如果库存null，秒杀还没有开始
			System.out.println("秒杀还没有开始，请等待");
			result="秒杀还没有开始，请等待";
		}else if(jedis.sismember(userKey, uid)) { //4.3 判断用户是否重复秒杀操作
			System.out.println("已经秒杀成功了，不能重复秒杀");
			result="已经秒杀成功了，不能重复秒杀";
		}else if(Integer.parseInt(kc)<=0) { //4.4判断如果商品数量，库存数量小于1，秒杀结束
			System.out.println("秒杀已经结束了");
			result="秒杀已经结束了";
		}else{ //4.5 秒杀
			//库存-1
			jedis.decr(kcKey);
			//把秒杀成功用户添加清单里面
			jedis.sadd(userKey,uid);
			System.out.println("秒杀成功了..");
			result = "秒杀成功了..";
		}
		jedis.close();
		return result;
	}
}
















